home *** CD-ROM | disk | FTP | other *** search
/ PsL Monthly 1993 December / PSL Monthly Shareware CD-ROM (December 1993).iso / prgmming / dos / pascal / dgsay.exe / lha / DGINIT.PAS < prev    next >
Pascal/Delphi Source File  |  1989-06-29  |  28KB  |  972 lines

  1. {
  2.  ╔═════════════════════════════════════════════════════════════════════════╗
  3.  ║                                                                         ║
  4.  ║        TITLE :      DGINIT.TPU,  Version 8906.01                        ║
  5.  ║      PURPOSE :      Various wheels.  Don't reinvent.                    ║
  6.  ║       AUTHOR :      David Gerrold, CompuServe ID:  70307,544            ║
  7.  ║  _____________________________________________________________________  ║
  8.  ║                                                                         ║
  9.  ║  This is not public domain software.  This is shareware.                ║
  10.  ║  This software is copyright 1989, by David Gerrold.                     ║
  11.  ║                                                                         ║
  12.  ║        The Brass Cannon Corporation                                     ║
  13.  ║        9420 Reseda Blvd., #804                                          ║
  14.  ║        Northridge, CA 91324-2932.                                       ║
  15.  ║                                                                         ║
  16.  ║  If you find this code useful, a donation of $25 is requested --        ║
  17.  ║  not to me, but to the AIDS Project Los Angeles.  Donations may         ║
  18.  ║  be forwarded via the Brass Cannon address.  Thank you.                 ║
  19.  ║                                                                         ║
  20.  ╚═════════════════════════════════════════════════════════════════════════╝
  21.                                                                             }
  22. { ========================================================================= }
  23. {  Compiler Directives :                                                    }
  24. { ========================================================================= }
  25.  
  26. {$R-}    {Range checking off}
  27. {$B+}    {Boolean complete evaluation on}
  28. {$S+}    {Stack checking on}
  29. {$I+}    {I/O checking on}
  30. {$N+,E+} {Simulate numeric coprocessor}
  31. {$M 65500,16384,655360} {Turbo 3 default stack and heap}
  32. {$V-}    {Variable range checking off}
  33.  
  34. { ========================================================================= }
  35. { ========================================================================= }
  36.  
  37. UNIT DGinit;
  38. { includes time and date functions }
  39.  
  40. { ========================================================================= }
  41. INTERFACE
  42. { ========================================================================= }
  43.  
  44. USES
  45.   Dos,                                           { TP5.5 unit }
  46.   TpDos,                                         { Turbo Professional unit }
  47.   TpCrt,                                         { Turbo Professional unit }
  48.   TpString,                                      { Turbo Professional unit }
  49.   TpWindow;                                      { Turbo Professional unit }
  50.  
  51. { ========================================================================= }
  52.  
  53. TYPE
  54.   String2    = string [2];
  55.   String3    = string [3];
  56.   String6    = string [6];
  57.   String12   = string [12];
  58.   String25   = string [25];
  59.   String80   = string [80];
  60.  
  61.   LocOb = Object
  62.     Row, Col : byte;
  63.     Procedure AcceptLoc (R, C : byte);
  64.     Procedure ReportLoc (Var R, C : byte);
  65.     Procedure GotoRC;
  66.   end;
  67.  
  68.   TimeOb = Object
  69.     Hour,
  70.     Minute,
  71.     Second,
  72.     Sec100 : word;
  73.  
  74.     Function PcTime : String12;                  { '10:36:09 pm' }
  75.     Function ShortTime : String6;                { '9:07p' }
  76.   end;
  77.  
  78.   DateOb = Object (TimeOb)
  79.     Year,
  80.     Month,
  81.     Day,
  82.     DayOfWeek : word;
  83.  
  84.     Function  LeapYear      : boolean;           { returns true if leap year }
  85.     Function  ValidDate     : boolean;           { returns true if valid date }
  86.     Function  GetDayOfWeek  : word;              { returns day of week }
  87.     Function  DayOfTheWeek3 : String3;           { returns 'Tue' }
  88.     Function  DayOfTheWeek  : String12;          { returns 'Tuesday' }
  89.  
  90.     Procedure GetToday;                          { put today's date in }
  91.                                                  { DateOb variables }
  92.     Procedure AcceptDate (Y, M, D : word);       { accept user variables }
  93.     Procedure AdvanceDate;                       { advances date one day }
  94.  
  95.     Function  PcDate        : String12;          { ' 3-05-88' }
  96.     Function  LogDate       : String12;          { ' 5-Mar-88' }
  97.     Function  StarDate      : String12;          { '8803.05' }
  98.     Function  FormalDate    : String25;          { 'March 5, 1988' }
  99.     Function  AbbrevDate    : String25;          { 'Tue, 3-05-88' }
  100.     Function  FullDate      : String25;          { 'Tuesday, March 5, 1988' }
  101.     Function  TimeStamp     : String25;          { 'Tue, 12-23-86, 11:01p' }
  102.   end;
  103.  
  104. CONST
  105.     Yes = True;
  106.     No  = False;
  107.     On  = True;
  108.     Off = False;
  109.  
  110.   SoundFlag   : Boolean = True;
  111.   MusicFlag   : Boolean = True;
  112.   ClickFlag   : Boolean = True;
  113.   ClockFlag   : Boolean = False;
  114.  
  115.   SingleLine  = #218#192#191#217#196#179;
  116.   DoubleLine  = #201#200#187#188#205#186;
  117.  
  118.   Blinking    : byte = 128;
  119.  
  120.   BlackBlack            = $00;
  121.   BlueBlack             = $01;
  122.   GreenBlack            = $02;
  123.   CyanBlack             = $03;
  124.   RedBlack              = $04;
  125.   MagentaBlack          = $05;
  126.   BrownBlack            = $06;
  127.   LightGrayBlack        = $07;
  128.   DarkGrayBlack         = $08;
  129.   LightBlueBlack        = $09;
  130.   LightGreenBlack       = $0A;
  131.   LightCyanBlack        = $0B;
  132.   LightRedBlack         = $0C;
  133.   LightMagentaBlack     = $0D;
  134.   YellowBlack           = $0E;
  135.   WhiteBlack            = $0F;
  136.   BlackBlue             = $10;
  137.   BlueBlue              = $11;
  138.   GreenBlue             = $12;
  139.   CyanBlue              = $13;
  140.   RedBlue               = $14;
  141.   MagentaBlue           = $15;
  142.   BrownBlue             = $16;
  143.   LightGrayBlue         = $17;  DarkGrayBlue          = $18;
  144.   LightBlueBlue         = $19;
  145.   LightGreenBlue        = $1A;
  146.   LightCyanBlue         = $1B;
  147.   LightRedBlue          = $1C;
  148.   LightMagentaBlue      = $1D;
  149.   YellowBlue            = $1E;
  150.   WhiteBlue             = $1F;
  151.   BlackGreen            = $20;
  152.   BlueGreen             = $21;
  153.   GreenGreen            = $22;
  154.   CyanGreen             = $23;
  155.   RedGreen              = $24;
  156.   MagentaGreen          = $25;
  157.   BrownGreen            = $26;
  158.   LightGrayGreen        = $27;
  159.   DarkGrayGreen         = $28;
  160.   LightBlueGreen        = $29;
  161.   LightGreenGreen       = $2A;
  162.   LightCyanGreen        = $2B;
  163.   LightRedGreen         = $2C;
  164.   LightMagentaGreen     = $2D;
  165.   YellowGreen           = $2E;
  166.   WhiteGreen            = $2F;
  167.   BlackCyan             = $30;
  168.   BlueCyan              = $31;
  169.   GreenCyan             = $32;
  170.   CyanCyan              = $33;
  171.   RedCyan               = $34;
  172.   MagentaCyan           = $35;
  173.   BrownCyan             = $36;
  174.   LightGrayCyan         = $37;
  175.   DarkGrayCyan          = $38;
  176.   LightBlueCyan         = $39;
  177.   LightGreenCyan        = $3A;
  178.   LightCyanCyan         = $3B;
  179.   LightRedCyan          = $3C;
  180.   LightMagentaCyan      = $3D;
  181.   YellowCyan            = $3E;
  182.   WhiteCyan             = $3F;
  183.   BlackRed              = $40;
  184.   BlueRed               = $41;
  185.   GreenRed              = $42;
  186.   CyanRed               = $43;
  187.   RedRed                = $44;
  188.   MagentaRed            = $45;
  189.   BrownRed              = $46;
  190.   LightGrayRed          = $47;
  191.   DarkGrayRed           = $48;
  192.   LightBlueRed          = $49;
  193.   LightGreenRed         = $4A;
  194.   LightCyanRed          = $4B;
  195.   LightRedRed           = $4C;
  196.   LightMagentaRed       = $4D;
  197.   YellowRed             = $4E;
  198.   WhiteRed              = $4F;
  199.   BlackMagenta          = $50;
  200.   BlueMagenta           = $51;
  201.   GreenMagenta          = $52;
  202.   CyanMagenta           = $53;
  203.   RedMagenta            = $54;
  204.   MagentaMagenta        = $55;
  205.   BrownMagenta          = $56;
  206.   LightGrayMagenta      = $57;
  207.   DarkGrayMagenta       = $58;
  208.   LightBlueMagenta      = $59;
  209.   LightGreenMagenta     = $5A;
  210.   LightCyanMagenta      = $5B;
  211.   LightRedMagenta       = $5C;
  212.   LightMagentaMagenta   = $5D;
  213.   YellowMagenta         = $5E;
  214.   WhiteMagenta          = $5F;
  215.   BlackBrown            = $60;
  216.   BlueBrown